🏷️ Custom Types (Tipos Personalizados)
Los tipos personalizados en Go permiten crear alias o tipos basados en tipos primitivos existentes (como string, int, float64).
¿Para qué sirven?
-
Claridad: El código es más legible (no es lo mismo un
stringque unIDUsuario). -
Seguridad: Evitan errores al restringir valores o tipos de datos específicos.
-
Poder: Permiten añadir métodos a tipos básicos (algo que veremos más adelante).
1. Definición Básica
Puedes crear un tipo a partir de cualquier tipo primitivo usando la palabra clave type.
// Definimos que 'edad' es un tipo basado en 'int'
type edad int
func main() {
var miEdad edad = 25
fmt.Println(miEdad) // Imprime: 25
}
2. Uso Práctico con Constantes (Enums a lo Go)
Esto es vital para estados de pedidos, roles de usuario, etc.
Ejemplo de "Kages":
// 1. Creamos el tipo base
type Kage string
// 2. Definimos las constantes válidas para ese tipo
const (
Hokage Kage = "Hokage"
Kazekage Kage = "Kazekage"
Mizukage Kage = "Mizukage"
)
func main() {
// Uso por declaración explícita
var lider Kage = Hokage
// Uso por inferencia de tipo
actualLider := Kazekage
fmt.Println("El líder actual es:", lider) //
}
💡 Ventajas Clave del Video
-
Restricción de valores: Si intentas asignar un valor que no esté definido en tus constantes (ej.
KageX), el compilador te ayudará a detectar que algo no está bien. -
Previsibilidad: Al usar estos tipos en funciones, te aseguras de que nadie pase un
stringgenérico cuando esperas un tipo de dato específico del dominio de tu negocio.
🔑Importancia
Este concepto es el puente hacia las Interfaces. En Go, a menudo creamos tipos personalizados para luego hacer que "cumplan" con una interfaz.